#pragma one

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int  BTDataType;
typedef struct BinaryTreeNode//申请节点
{
    BTDataType val;
    struct BinaryTreeNode*left;
    struct BinaryTreeNode*right;
}BTNode;

typedef BTNode* Value;
typedef struct QUEUENOTE
{
    struct QUEUENOTE *next;
    Value data;
}QET;

typedef struct pointer
{
    QET *First;
    QET *Tail;
}po;


void QueueNoteInit(po*q);//初始化

void QueueNotePush(po*q,Value number);//插入


void QueuePop(po* q);// 队头出队列


Value QueueFront(po* q);//取头部元素


Value QueueBack(po* q);//取队尾元素


int QueueSize(po* q);//队列个数

// 检测队列是否为空，如果为空返回非零结果，如果非空返回0
bool QueueEmpty(po* q);
// 销毁队列
void QueueDestroy(po* q);